在美国时间6月27日下午举行的CVPR2016大会上,作为仅有的三个受邀公开演讲的嘉宾之一的Mobileye的联合创始人及CTOAmnon Shashua发表了其基于自动驾驶主题的演讲。Mobileye占据了ADAS市场90%的市场份额,连Tesla也搭载了其开发的系统。Amnon Shashua作为著名的希伯来大学的计算机科学教授,在无人驾驶和人工智能领域也是积累了丰富的经验。雷锋网(搜索“雷锋网”公众号关注)听译了Amnon Shashua在CVPR上进行的公开演讲,选取了其中的重点部分发布出来同大家分享。让我们一起看看这位ADAS领域的领袖级人物对自动驾驶、深度学习、汽车市场等都有怎样的理解。
演讲中的Amnon Shashua
Amnon Shashua:
大家好,我想起了不久前我们公司只有500人的时候,参加了CVPR会议,我们那时已经把取得的成就视为了一个巨大的成功。而现在我们已经有3600人了,真是让我感慨万分。我今天要讲的是从Mobileye出发,谈谈现在的自动驾驶,这也是你们在PPT的左下角看到Mobileye的logo的原因。今天的演讲不是那种告诉大家怎么做到这件事的演讲,我更倾向于跟大家聊聊,要完成这样一件事我们该做什么。我总是跟我的学生说,世界上的研究其实有80%是在寻找到底该做什么的过程,一旦找到了,剩下的那20%你不做也总有人会去做完的。知道该向什么方向努力才是最重要的事。
我会跟大家讲讲自动驾驶、机器学习等等这些东西和他们已经造成或即将造成的冲击和震撼。
为什么要发展自动驾驶?
我们为什么觉得自动驾驶是必要的呢?在这里我会讲两个方面的原因。其中一个是很明显的,如果你是一个新入行的,想知道为什么要发展自动驾驶汽车的从业人员,那你去谷歌就能搜到这些信息。比如:我们的汽车有96%的时间是闲置的,只有4%的时间在使用,利用率非常低。
并且车上各式各样的传感器可以让乘客获得更多定制化服务。
不过我也可以在这里跟大家说一些不那么明显的原因。现在科技界普遍有一个共识:未来将由人工智能和机器人驱动,只是最后的社会和商业结构尚不清楚。
很多公司做出了很不错的聊天机器人,但是实际上我们还不知道它们能用来做什么,这些东西真的值得投入那么多钱去研发吗?又比如看看波士顿动力,他们做出了很多很厉害的机器人,我是说,真的很厉害,但实际上我们确实还不清楚它们能用来做什么。我们确实还不知道AI和机器人在我们未来的社会结构中会扮演一个什么样的角色。
但是看看汽车,汽车绝对是一个非常适合用来发展AI的平台。因为它需要有各种各样的传感器和计算平台、要让它能够自动驾驶,它需要在驾驶方面有接近人类的认知能力。所以我们需要帮助车辆驾驶的传感器,也需要能理解乘客在做什么,想做什么的传感器。这些都需要AI的帮助。而通过获取这些信息我们也能开发出新的服务乘客的方式。所以汽车很适合用来发展成熟的AI技术和相关的商业模式,一旦我们在这个领域将AI发展成熟了,我们就可以把它应用到其他领域去。
支撑自动驾驶的三个支柱
我认为自动驾驶系统的完善需要三个方面技术的支持。它们分别是:
传感技术(Sensing):传感器得到环境数据,将其传达到计算设备,再由其中的环境模型决定车辆行为,这是目前定义最明晰和成熟的一个领域。
地图绘制(Mapping):自动驾驶汽车需要建立非常精确的地图,方便应对路况。这个领域的定义就没有传感技术那么明晰了。
驾驶策略/路线规划(Driving policy):机器不是路上唯一的个体。就像人类需要去驾校一样,机器也需要学习如何遵守交通规则、何时该走,何时该停,等等,均需要训练和规定。而我们需要将这些翻译成技术信息,让机器能够理解。
这三项需求必须要同时发展,作为一个整体来考虑,因为如果不这样,就会陷入过度需求(unreasonable demands)的误区。
早年我们曾有一款产品,可以帮车辆测量跟各种障碍物的距离,以避免与其相撞。但是当时行业并不相信他们能做到这一点,又一次我自己去和客户沟通,客户表示我们不可能做到,但实际上我们真的是可以的。我跟他们说,这个产品并不需要精确到这种程度。因为我们自己开车的时候也不可能对物体的距离有多精确的测量。比如说,你开车的时候能精确的看出前面那个东西离你有99.8米吗?不可能,也不需要,我们只要能大概估计出它的距离就可以了。这就是过度需求。只有将这三项放在一起综合考虑,才能避免它的发生。
传感技术
传感器是关于自动驾驶定义最精确的技术
关于传感器的选择和使用有两点比较常见的疑问。第一点是,为什么一定要用相机?(而不是雷达、红外传感器这样的东西来作为主要测量依据)
第一是因为分辨率,相机的分辨率远远高于其他类型的传感器。那为什么分辨率这么重要呢?因为你需要细节,细节越多越好。可能你能通过某些手段减少对细节的需求。但是那解决的就是另外一个问题了。
第二,相机是唯一一个除了物体的“形状”,还能告诉你物体的“外观”的技术。很多信息是只能通过对外观的扫描来读取的,比如路标、红绿灯等。
一个“环境模型”需要的东西
我们要建立一个完美的环境模型,首先需要多个传感器,精确的判断周围的所有物体,错误率需要降至0%——不过其实这些是ADAS(高级辅助驾驶系统)继续发展就会自然完成的进步,不是什么飞跃性进展。
我们需要对行进路线上可用的驾驶空间做出精确的判断,算法要知道自己能开去哪里,不能开去哪里。——这是一项小的飞跃,但仍与自动驾驶没有太大关系,只要辅助驾驶系统继续发展,要不了几年就能拥有这样的技术。
最难的一点是侦测出所有驾驶路线。需要综合路上所有的信息,计算出自己应该如何驾驶到自己想去的地方,这是最大的挑战,也是最大的飞跃
物体侦测
为什么需要多个面向不同方向的相机?
因为在城市中的环境远比高速路上复杂,如下图所示,必须要有足够多的传感器才能收集到能确保顺利和安全行车的信息。
我们可以看到,自动驾驶系统在所有车辆边上都加上了立体边框。为其与车辆的关系标上了不同的颜色
位置关系的标记是有必要的,比如如果一辆车停在了你的右边(假设你的国家交通规则是靠右行驶),你需要知道车门随时可能打开,而司机会走出来,所以需要和它保持一定距离。
只是在车上加上边框是不够的,因为城市的环境太复杂了。这个边框必须是3D的,才能给你提供足够的参考数据。所以下次大家如果看见了一个关于怎么在车上加边框的论文,就可以直接跳过去看下一篇了,因为这东西实在是没有什么意义。(笑)
可用空间判断
在说这点之前我想提一下深度学习。
深度学习现在的研究有点绕远路了
深度学习真正的突破会体现在什么地方?我想应该是在特征提取上。
我们不应该再手动去提取特征,不要再考虑什么LDP啊,贪婪算法啊,这样乱七八糟的我们现在需要考虑的问题。算法应该要自动去学会这些才对。
这不是什么很震撼的消息,因为这是常理:我们如果在工作中被指派来解决一些问题,只要我们有足够的时间,我们肯定能发现一种解决它的方法。发现问题的特征,寻找到它的解决方法。现在的深度学习算法可能运算速度比人更快,比人更精确,但它不是什么革命性的东西,不算是什么突破。它现在只能解决那些我们已经深入了解的东西,而真正有用的算法,应该要能解决那些我们现在解决不了的问题。
不过深度神经网络取得的进步仍然很值得高兴,我们也在我们的行车算法中应用了深度学习,它的表现很好,能帮助我们区分环境特征,这是非常重要的。
这是一个示例,上图中的绿色区域就是算法标记出来的可活动的空间。
可以看到,算法意识到了台阶上是不能去的地方,而底下都是可以去的。
我们回到开始那张图,看上图的右边。算法意识到了旁边的人行道不是能行驶的区域,虽然它们的材料是一样的。没有任何探测器会告诉你它们的材料有什么区别,但是因为算法能对环境做出判断,所以能知道旁边的路不能开。这就是深度学习网络的功劳。
除了绿色,我们有很多种表达方式来对应道路上不同的特征。
当道路潮湿的时候,算法也能分辨出来并做出应对
驾驶路线规划
这是最难的一种技术。
根据整体环境规划车道
要让计算机学会计算出合理的驾驶路线,我们首先要给驾驶路线一个精确的定义,人类能轻易理解驾驶的过程和目的,但计算机要做好这一点却不那么容易。
可以看到,这张图的路线里没有车道,但算法却可以正确的画出一个虚拟的“车道”,并且准确预计出它将要去往的方向。
车道整合
在这个视频中,尽管周边的几条线表现不稳定,但中间这条紫色的线的位置却一直很稳定
这条线就是关键,是很多种算法综合作用才能达到的结果。
车道信息理解
算法还能检测路上有几条车道,并且判断自己正在哪一条上
路线上的关键点,如路径交叉、分离点等的标记可以帮助算法理解和决策下一步的行动。算法可以用不同的颜色标记这些点。
在下面这张图的上半部分,我们甚至可以发现,道路的建造者在道路上做出了错误的标记——将道路分叉点附近的路面应有的虚线画成了实线,但是算法发现并纠正了这个错误,在最终的标记中仍然将其标记为虚线(蓝色)。
可以看到深度学习算法让最终的识别效果有了显著的改善。
驾驶策略
这一部分是关于我们的车辆如何融入到现有的交通系统中去
我之前提到过,我们不是道路上唯一的车辆,所以说有必要让机器学习一些驾驶策略。
感觉(Sensing)和计划(Planning)的含义
当我们提到“感觉”时,我们的意思是“知晓我们周围的所有事物”,不管是基于什么形式,声音也好图像也好,告诉我们我们的周围有什么,比如算法知道“我前面这里有一辆车”,这不是一种行为,在这个过程中,“感觉”的个体本身是唯一要考虑的对象。而且结果是非常容易预测的。实现这些的技术有有监督深度学习等技术。
而“计划”指的是对于未来的计划,在过程中自身并不是唯一需要考量的因素,还有很多额外的变量。增强学习就是用来实现这点的技术。
增强学习
上图展示了一个增强学习的过程
下图是RNN深度学习的一个流程图
下面是一个算法的实例:有很多人车辆正在通过一个环岛,下图中红色的车是自动驾驶的车辆,蓝色的车是“有侵略性”的车,意味着当它发现你也想汇入车流进入环岛的时候它们会抢到从你面前过去而不会减速让你进入,而绿色的车是“有礼貌”的车辆。当它发现你想进入车流的时候会减速让你进入,算法一开始并不知道什么样的车是有侵略性的什么样的车是礼貌的,但是通过不断的实验,它能发现这其中的规律,最后在有礼貌的车来的时候汇入车流
(他跳过了几张幻灯片,时间不太够了,不过我们还是放出来)
地图绘制
现在我想来讲一下地图绘制。
地图绘制(不同于导航)很重要,但不同于传感有其精确的定义。其定义和手段还不明确和成熟。人类在开车的时候是不需要地图绘制这项技能的。我们可以直接开车走人,有没有地图都可以,导航可以告诉我们我们要去哪和怎么去,但是那不是我们开车的必要条件,没有地图我们一样可以开车。但AI不一样,如果没有这种能力电脑就没法开车。为什么AI会需要一样我们不需要的能力呢?我们能不能造出一种不需要地图绘制,只需导航就能开车的AI呢?注意我们这里说的AI的地图,其细节的精确度要远远高于我们目前经常看的这种。
目前谷歌和很多其他模仿他们的公司正在发展这种精确地图的技术,如果你要用一个地图来导航,你只需要一个精度达到几米的GPS就行了,但是如果你需要用这种精细化的地图来作为控制汽车的依据,那你对位置精确度的要求就要达到10cm的级别,GPS是达不到这种精度的,何况城市中还有像高楼、隧道这样的干扰源。所以你不仅需要绘制一个这么精确的地图,还需要一个与之匹配的精确定位技术,这两者是相辅相成的
地图要做到怎样才能帮助实现自动驾驶?
看起来这其中的联系有点隐晦,但是当我跟你解释清楚之后你就会发现其实很简单。
地图是自动驾驶中一个非常必要的组成部分,对安全非常重要。如果没有这份地图,算法可能根本无法实现驾驶。
所以首先能明确的是,这份地图的更新必须非常及时,几乎要做到准实时状态,所以维持这份地图的有效性需要非常庞大的数据流量。所以数据没法统一收集,必须从所有装备自动驾驶系统的车辆上共同收集。
因为无人驾驶车的数量将会变得非常多,所以每辆车产生的地图数据必须非常非常小——预计每千米10kb的量,这样无论采用什么方式传输,一天下来大概只会花掉1MB左右的流量在上传和下载数据上,这样的量是可以接受的,不然不仅用户无法承受,服务器也无法负担如此庞大的数据量。而且对下载数据的进一步处理必须在车内的计算设备上本地完成。
整个改造最好不需要添加新的硬件,一切都应该在车上本来就有的硬件上完成。
这样一来的话,我们就只需要在配套的软件上操心,做好软件方面的工作,就能打造出自动驾驶的车辆了
把这几项综合起来得到的系统,比较像SLAM系统的一个变种。但比SLAM表现得聪明得多。我们管这个叫道路经验管理系统(REM),是我们正在进行的一项地图绘制计划。
经过道路的前一辆车还可以给后一辆经过同一道路的车辆提供数据。
预计在2020年左右,几乎所有的车都会装备前摄像头并且能为这个计划提供数据。
总结
我们大致能给出一个自动驾驶进化的时间表,我们现在处在第一个阶段的正中间,2016年,现在我们能实现的程度就是高速公路自动驾驶,其实这还不应该叫自动驾驶,而应该叫“不安全的辅助驾驶”,说它“不安全”是因为现阶段它还可能会出错。有些人看到一样东西的准确率达到95%的时候,他可能就会有这种东西已经100%准确了的错觉,但不是这样的。现在这个还不能叫自动驾驶。
不过预计在2018-2020年我们估计就能实现在高速公路上的自动驾驶了,这也是我们正在做的项目。虽然还仅限高速公路,不过那时的准确度应该达到非常高的程度了,当你上高速公路之后就可以激活这个系统,然后就可以去看个书,甚至睡个觉之类的。不用担心安全问题,如果汽车需要你醒来,它会提前提醒你,如果你没醒的话,汽车就会自动减速靠边,然后找个地方停下来。
真正的飞跃大概会在2021年到来,按我们的分级方法,那时候的自动驾驶等级大概会在Lv.4到Lv.5之间了,能实现真正的全自动驾驶。那时预计社会将会慢慢接受自动驾驶系统的存在,可能在一段时间内,还是会有司机坐在驾驶座上以防万一算法出错。而这时的自动驾驶系统可能主要在公共交通或出租车等方式、如Uber等之间流行,私家车司机还是会倾向于手动驾车出行。
在2023年,当所有条件都成熟的时候,人们对自动驾驶汽车的应用会更上一层楼,人们可以让车送自己去上班,然后自己回家,派车去接自己的孩子……在私家车之间自动驾驶也会普及开来,随时让自己的车去任何需要的地方。租车等对车的使用方式也将更加成熟。这是个非常美好的未来。今天我的演讲就到这里了,感谢大家的聆听。
本文网址: